home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / prog / atari / c / stut_src / arbotree.h < prev    next >
C/C++ Source or Header  |  1996-06-04  |  7KB  |  264 lines

  1. /*
  2.  * ArboTree.h
  3.  *
  4.  * Structures repr‚sentant une arborescence complŠte:
  5.  *                                                                 
  6.  * Purpose:
  7.  * --------
  8.  *    Ce fichier contient toutes les structures de donn‚es inter-
  9.  * d‚pendantes utilis‚es pour representer et utiliser une arborescence
  10.  * de serveur complete.
  11.  *
  12.  * Notes:
  13.  * ------
  14.  * Diagramme de d‚pendances:
  15.  * FNCTSPEC          
  16.  *
  17.  *             OUTPUT_FPAR        INPUT_FPAR   ARBO_LISTPARS  LECTURE_PAR
  18.  *                     \          /                   |          |
  19.  * AFNCTSPEC      {ARBO_FIELDPARS}  ARBO_TEXTPAR  |  {ARBO_SPECIALPAR}
  20.  *          \________    |    ________/_________/__________/
  21.  *                      \   |   /              
  22.  *                   PAGEARBO             
  23.  *
  24.  *
  25.  */
  26.  
  27. /*
  28.  * V‚rifie si les pr‚sentes d‚finitions ont d‚ja ‚t‚ faites:
  29.  */
  30. #ifndef _ARBOTREE_H_ 
  31. #define _ARBOTREE_H_
  32.  
  33.  
  34. #include "ARBKEYWD.H"
  35.  
  36.  
  37. #define    REVERSEVIDEO    0x4000    /* bit 14 */
  38.  
  39. /*
  40.  * FNCTSPEC: No + Nom d'une fonction
  41.  */
  42. typedef
  43.     struct
  44.     {
  45.         int    fnct_no;                /* Fonction */
  46.         char    *fnct_name;            /* Intitul‚ de cette fonction */
  47.     }
  48.     FNCTSPEC;
  49.     
  50.     
  51. /*
  52.  * AFNCTSPEC: No + icone + Nom d'une fonction ARBO
  53.  */
  54. typedef
  55.     struct
  56.     {
  57.         int    fnct_no;                /* Fonction arbo */
  58.         int    icon_no;                /* No de l'icone associ‚e dans le formulaire de choix du type d'une nlle page */
  59.         char    *fnct_name;            /* Intitul‚ de cette fonction */
  60.     }
  61.     AFNCTSPEC;
  62.  
  63.     
  64. /*
  65.  * ARBO_TEXTPAR: Parametre textuel d'une page arbo
  66.  * 04.12.94: next est maintenant en premier pour compatibilit‚ avec SGLE_LINK_LIST_ELT mais on ne peut utiliser dy`uplicate..ssl qd meme a cause de char*
  67.  */
  68. typedef
  69.     struct        arbo_textpar
  70.     {
  71.         struct arbo_textpar    *    next;        /* Pointeur sur param suivant */
  72.         int                            fnct_no;    /* No de la fonction du parm */
  73.         char                        *    nom;        /* Pointeur sur le nom du param */
  74.     }
  75.     ARBO_TEXTPAR;
  76.  
  77. typedef
  78.     struct
  79.     {
  80.         BOOL    b_enabled            :    1;        /* TRUE si valid‚ */
  81.         BOOL    b_MultiParagraph    :    1;        /* TRUE si champ peut contenir plusieurs paragraphe (d‚limot‚s par des CR) */
  82.         BOOL    b_Mandatory            :    1;        /* TRUE si champ obligatoire (NULL value not allowed) */
  83.         BOOL    b_DisplayImm        :    1;        /* Affichage imm‚diat lorsqu'on arrive sur la page */
  84.         BOOL    b_DisplayEnt        :    1;        /* Affichage lorsqu'on entre ds le champ pour la premiŠre fois */
  85.         BOOL    b_DisplayTjs        :    1;        /* Affiche toujours: … chauqe fois qu'on arrive sur le champ */
  86.         BOOL    b_ReverseSupp        :    1;        /* Vid‚o inverse Support */
  87.         BOOL    b_ReverseText        :    1;        /* Vid‚o inverse Texte */
  88.         int    n_Junk                :  8;        /* A remplir avec des 0 */        
  89.     }
  90.     INFIELD_FLAGS;
  91. typedef
  92.     struct
  93.     {
  94.         BOOL    b_enabled            :    1;        /* TRUE si valid‚ */
  95.         BOOL    b_ReverseText        :    1;        /* Vid‚o inverse Texte */
  96.         BOOL    b_ReverseInfo        :    1;        /* Vid‚o inverse Info */
  97.         BOOL    b_Clear                :    1;        /* Il faut effacer le champ de l'‚cran avant d'en changer le contenu */
  98.         UINT    u_GroupId            :    4;        /* 1:Fond  2:Header/Nopage  4:pagecontent */
  99.         int    n_Junk                :  8;        /* A remplir avec des 0 */        
  100.     }
  101.     OUTFIELD_FLAGS;
  102.  
  103. /*
  104.  * OUTPUT_FPAR: ParamŠtres d'un champ OUTPUT d'une page arbo
  105.  * 24.11.94: fplanque: added FieldFlags
  106.  */
  107. typedef
  108.     struct
  109.     {
  110.         int                fnct_no;            /* No de fonction du champ de sortie */
  111.         ULONG                ul_CodeChamp;    /* Code d'identification du champ */
  112.         OUTFIELD_FLAGS    OutFieldFlags;    /* Diff‚rents flags */    
  113.         int                x;                    /* Position du champ */
  114.         int                y;    
  115.         int                w;                    /* Largeur du champ */
  116.         int                h;                    /* Nbre de lignes du champ */
  117.         int                col_text;        /* Couleur du texte */
  118.         int                col_info;        /* Couleur des infos */
  119.         int                n_Format;        /* Format de pr‚sentation des donn‚es */
  120.         int                reserved;        /* R‚serv‚ pour usage futur */
  121.     }
  122.     OUTPUT_FPAR;
  123.  
  124.  
  125. /*
  126.  * INPUT_FPAR: ParamŠtres d'un champ INPUT d'une page arbo
  127.  * 24.11.94: fplanque: added FieldFlags
  128.  */
  129. typedef
  130.     struct
  131.     {
  132.         int                fnct_no;            /* No de fonction du champ de saisie */
  133.         ULONG                ul_CodeChamp;    /* Code d'identification du champ */
  134.         INFIELD_FLAGS    InFieldFlags;    /* Diff‚rents flags */    
  135.         int                x;                    /* Position du champ */
  136.         int                y;    
  137.         int                w;                    /* Largeur du champ */
  138.         int                h;                    /* Nbre de lignes du champ */
  139.         int                asc_fill;        /* Code ASCII CaractŠre de remplissage */
  140.         int                asc_cach;        /* Code ASCII CaractŠre Cache (Pour mot de passe...) */
  141.         int                col_fill;        /* Couleur du "fill" */
  142.         int                col_text;        /* Couleur du texte tap‚ */
  143.         int                n_Filter;        /* Filtre de saisie */
  144.         ULONG                l_MaxNbLines;    /* Nombre de lignes maximum */
  145.         int                reserved;        /* R‚serv‚ pour usage futur */
  146.         char            *    psz_DefText;    /* Texte par d‚faut */
  147.     }
  148.     INPUT_FPAR;
  149.  
  150. /*
  151.  * ARBO_FIELDPARS: ParamŠtres d'un champ quelconque d'une page arbo
  152.  */
  153. typedef
  154.     struct        field_params
  155.     {
  156.         struct field_params    *next;        /* Ptr sur paramŠtres du champ suivant */
  157.         union
  158.         {
  159.             OUTPUT_FPAR                output;        /* Champ de sortie */
  160.             INPUT_FPAR                input;        /* Champ de saisie */
  161.             int                        fnct_no;        /* No de fonction */
  162.             char                        params[];    /* G‚n‚rique */
  163.         }                            data;
  164.     }
  165.     ARBO_FIELDPARS;      
  166.  
  167.  
  168. /*
  169.  * ARBO_LISTPARS: ParamŠtres d'affichage de la liste
  170.  */
  171. typedef
  172.     struct
  173.     {
  174.         int    Reserved1;
  175.         int    nb_Lines;        /* Nbre de lignes dans la liste */
  176.         int    nb_Cols;            /* Nbre de colonnes dans la liste */
  177.         int    n_InterLine;    /* Espace entre 2 lignes cons‚cutives */
  178.         int    n_InterCol;        /* Espace entre 2 colonnes cons‚cutives */
  179.         int    Reserved2;
  180.         int    Reserved3;
  181.     }ARBO_LISTPARS;
  182.  
  183.  
  184. /*
  185.  * LECTURE_PAR: ParamŠtres sp‚ciaux d'une page arbo LECTURE
  186.  */
  187. typedef
  188.     struct
  189.     {
  190.         int    n_Annule_Efface;        /* !=0 si un appui sur annulation provoque un effacement de message */    
  191.     }
  192.     LECTURE_PAR;      
  193.  
  194.  
  195. /*
  196.  * FILESEL_PAR: ParamŠtres sp‚ciaux d'une page arbo FILESEL
  197.  */
  198. typedef
  199.     struct
  200.     {
  201.         int        n_flags;                    /* flags d'inclusion de diff‚rents types de fichiers */
  202.         char    *    pMsz_RootPath;            /* Racine de s‚lection */    
  203.     }
  204.     FILESEL_PAR;      
  205.  
  206.     
  207. /*
  208.  * ARBO_SPECIALPAR: ParamŠtres speciaux d'une page arbo
  209.  */
  210. typedef
  211.     union
  212.     {
  213.         char            *    data;            /* Contenu G‚n‚rique, pour sauvegarde */
  214.         LECTURE_PAR    *    lecture;        /* ParamŠtres pour page lecture */
  215.         FILESEL_PAR    *    filesel;        /* ParamŠtres pour page filesel */
  216.     }
  217.     ARBO_SPECIALPAR;      
  218.  
  219.  
  220.     
  221. /*
  222.  * PAGEARBO: Tous les paramètres d'UNE PAGE ARBO
  223.  *
  224.  * Notes:
  225.  * ------
  226.  * Les variables en retrait sont celles qui ne sont pas sauvées
  227.  * sur disque. Elles sont l… pour augmenter la vitesse de traitement
  228.  * par le programme.
  229.  *
  230.  * 29.03.95: les liens arbo, deviennent evenements
  231.  */
  232. typedef
  233.     struct
  234.     {
  235.         int                    fnct_no;                /* Fonction de la page */
  236.             char                    *chemin;            /* ??? Chemin complet */
  237.             AFNCTSPEC            *fnct_spec;        /* Sp‚cification sur la fonction arbo */
  238.             
  239.         int                    map_pos_x;            /* Coordonn‚es dans le tableau repr‚sentatif */
  240.         int                    map_pos_y;
  241.  
  242.         ARBO_TEXTPAR    *    pages_ecran;        /* Pointeur sur la 1Šre page ‚cran */
  243.  
  244.         ARBO_TEXTPAR    *    databases;            /* Bases de donn‚es concern‚es */
  245.  
  246.         ARBO_SPECIALPAR    special_par;        /* Ptr sur parametres speciaux */
  247.  
  248.         ARBO_FIELDPARS    *    output_fields;        /* Ptr sur 1er champ de sortie */    
  249.         ARBO_LISTPARS    *    pArboListPars;        /* Ptr sur paramŠtres de liste */
  250.  
  251.         ARBO_FIELDPARS    *    input_fields;        /* Ptr sur 1er champ de saisie */
  252.  
  253.         KEYWORD_LIST    *    p_MotsClefs;        /* Ptr sur liste de Mots clefs */
  254.  
  255.         KEYWORD_LIST    *    p_Events;            /* Ptr sur liste d'Evenments */
  256.     }
  257.     PAGEARBO;  
  258.     
  259.  
  260. /*
  261.  * Fin du test anti red‚finition:
  262.  */
  263. #endif
  264.